var class1 = new Class({
   initialize: function(){
      console.log('class1 initialize function called');
   }
});

var class2 = class1.extend({
   initialize: function(){
      this.parent();
      console.log('class2 initialize function called');
   },
   
   on: function() {
      console.log('class2 on function called');
   }
   
});

var class3 = class2.extend({
   initialize: function(){
      this.parent.parent();
      console.log('class3 initialize function called');
   }
});

class3.implement({
   on: function() {
      this.parent.apply(this);
      console.log('class3 on function called');
   }
});


// class2 = class3;



/*
class2.implement({
   initialize: function(){
      console.log('class2 initialize #2 function called');
      this.parent();
   }
});
*/